package cn.zn.modules.money.cur.dao;

import cn.zn.modules.money.cur.entity.TMoneyInfo;
import cn.zn.modules.money.cur.entity.vo.*;
import cn.zn.modules.money.his.entity.MoneyInfoSum;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TMoneyInfoMapper extends BaseMapper<TMoneyInfo> {
    /**
     * 是否存在指定经费
     * @param projectCode
     * @param cateCode
     * @return
     */
    Integer queryHasSmallCate(@Param("projectCode") String projectCode, @Param("cateCode") String cateCode);

    /**
     * 查询可用金额
     * @param projectCode
     * @param cateCode
     * @return
     */
    MoneyAvailableMoneyVO queryAvailableMoney(@Param("projectCode") String projectCode, @Param("cateCode") String cateCode);

    /**
     * 查询可用项目
     *
     * @return
     */
    List<MoneyAvailableProjectVO> queryAvailableProjects();

    /**
     * 查询可用经济分类
     *
     * @param projectCode
     * @return
     */
    List<MoneyAvailableCateVO> queryAvailableCates(@Param("projectCode") String projectCode);

    List<TMoneyInfo> findList(@Param("ids") List<String> ids);

    /**
     * 经费汇总查询
     *
     * @return
     */
    List<MoneySumVO> querySum();

    List<TMoneyInfo> querySumDetail(@Param("tMoneyInfo") TMoneyInfo tMoneyInfo);

    List<TMoneyInfo> querySuspended(@Param("tMoneyInfo") TMoneyInfo tMoneyInfo);

    List<MoneyCateMainSumVO> querySumForCateMain();
}